TPTP Problem File: ITP065^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP065^1 : TPTP v8.2.0. Released v7.5.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer HeapImperative problem prob_1087__5351268_1
% Version  : Especial.
% English  :

% Refs     : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
%          : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% Source   : [Des21]
% Names    : HeapImperative/prob_1087__5351268_1 [Des21]

% Status   : Theorem
% Rating   : 0.30 v8.2.0, 0.15 v8.1.0, 0.18 v7.5.0
% Syntax   : Number of formulae    :   26 (  11 unt;  12 typ;   0 def)
%            Number of atoms       :   30 (  16 equ;   0 cnn)
%            Maximal formula atoms :    4 (   2 avg)
%            Number of connectives :   79 (   5   ~;   2   |;   4   &;  62   @)
%                                         (   0 <=>;   6  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   14 (   5 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :   25 (  25   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   11 (  10 usr;   1 con; 0-3 aty)
%            Number of variables   :   40 (   1   ^;  39   !;   0   ?;  40   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Sledgehammer 2021-02-23 15:31:56.775
%------------------------------------------------------------------------------
% Could-be-implicit typings (2)
thf(ty_n_t__Heap__OTree_Itf__b_J,type,
    tree_b: $tType ).

thf(ty_n_tf__b,type,
    b: $tType ).

% Explicit typings (10)
thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Ohs__is__empty_001tf__b,type,
    heapIm229596387mpty_b: tree_b > $o ).

thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Oleft_001tf__b,type,
    heapIm1140443834left_b: tree_b > tree_b ).

thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Oright_001tf__b,type,
    heapIm1257206335ight_b: tree_b > tree_b ).

thf(sy_c_Heap_OTree_OE_001tf__b,type,
    e_b: tree_b ).

thf(sy_c_Heap_OTree_OT_001tf__b,type,
    t_b: b > tree_b > tree_b > tree_b ).

thf(sy_c_Heap_OTree_Opred__Tree_001tf__b,type,
    pred_Tree_b: ( b > $o ) > tree_b > $o ).

thf(sy_c_Heap_Oin__tree_001tf__b,type,
    in_tree_b: b > tree_b > $o ).

thf(sy_c_Heap_Oval_001tf__b,type,
    val_b: tree_b > b ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_It__Heap__OTree_Itf__b_J_M_Eo_J,type,
    ord_less_eq_Tree_b_o: ( tree_b > $o ) > ( tree_b > $o ) > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_Itf__b_M_Eo_J,type,
    ord_less_eq_b_o: ( b > $o ) > ( b > $o ) > $o ).

% Relevant facts (13)
thf(fact_0_hs__is__empty__def,axiom,
    ( heapIm229596387mpty_b
    = ( ^ [T: tree_b] : T = e_b ) ) ).

% hs_is_empty_def
thf(fact_1_in__tree_Osimps_I1_J,axiom,
    ! [V: b] :
      ~ ( in_tree_b @ V @ e_b ) ).

% in_tree.simps(1)
thf(fact_2_Tree_Opred__inject_I1_J,axiom,
    ! [P: b > $o] : ( pred_Tree_b @ P @ e_b ) ).

% Tree.pred_inject(1)
thf(fact_3_Tree_Oinject,axiom,
    ! [X21: b,X22: tree_b,X23: tree_b,Y21: b,Y22: tree_b,Y23: tree_b] :
      ( ( ( t_b @ X21 @ X22 @ X23 )
        = ( t_b @ Y21 @ Y22 @ Y23 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 )
        & ( X23 = Y23 ) ) ) ).

% Tree.inject
thf(fact_4_Tree_Opred__inject_I2_J,axiom,
    ! [P: b > $o,A: b,Aa: tree_b,Ab: tree_b] :
      ( ( pred_Tree_b @ P @ ( t_b @ A @ Aa @ Ab ) )
      = ( ( P @ A )
        & ( pred_Tree_b @ P @ Aa )
        & ( pred_Tree_b @ P @ Ab ) ) ) ).

% Tree.pred_inject(2)
thf(fact_5_in__tree_Osimps_I2_J,axiom,
    ! [V: b,V2: b,L: tree_b,R: tree_b] :
      ( ( in_tree_b @ V @ ( t_b @ V2 @ L @ R ) )
      = ( ( V = V2 )
        | ( in_tree_b @ V @ L )
        | ( in_tree_b @ V @ R ) ) ) ).

% in_tree.simps(2)
thf(fact_6_Tree_Oexhaust,axiom,
    ! [Y: tree_b] :
      ( ( Y != e_b )
     => ~ ! [X212: b,X222: tree_b,X232: tree_b] :
            ( Y
           != ( t_b @ X212 @ X222 @ X232 ) ) ) ).

% Tree.exhaust
thf(fact_7_Tree_Oinduct,axiom,
    ! [P: tree_b > $o,Tree: tree_b] :
      ( ( P @ e_b )
     => ( ! [X1: b,X2: tree_b,X3: tree_b] :
            ( ( P @ X2 )
           => ( ( P @ X3 )
             => ( P @ ( t_b @ X1 @ X2 @ X3 ) ) ) )
       => ( P @ Tree ) ) ) ).

% Tree.induct
thf(fact_8_Tree_Odistinct_I1_J,axiom,
    ! [X21: b,X22: tree_b,X23: tree_b] :
      ( e_b
     != ( t_b @ X21 @ X22 @ X23 ) ) ).

% Tree.distinct(1)
thf(fact_9_left_Osimps,axiom,
    ! [V: b,L: tree_b,R: tree_b] :
      ( ( heapIm1140443834left_b @ ( t_b @ V @ L @ R ) )
      = L ) ).

% left.simps
thf(fact_10_right_Osimps,axiom,
    ! [V: b,L: tree_b,R: tree_b] :
      ( ( heapIm1257206335ight_b @ ( t_b @ V @ L @ R ) )
      = R ) ).

% right.simps
thf(fact_11_Tree_Opred__mono,axiom,
    ! [P: b > $o,Pa: b > $o] :
      ( ( ord_less_eq_b_o @ P @ Pa )
     => ( ord_less_eq_Tree_b_o @ ( pred_Tree_b @ P ) @ ( pred_Tree_b @ Pa ) ) ) ).

% Tree.pred_mono
thf(fact_12_val_Osimps,axiom,
    ! [V: b,Uu: tree_b,Uv: tree_b] :
      ( ( val_b @ ( t_b @ V @ Uu @ Uv ) )
      = V ) ).

% val.simps

% Conjectures (1)
thf(conj_0,conjecture,
    heapIm229596387mpty_b @ e_b ).

%------------------------------------------------------------------------------